home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / utilities / pu083.dms / pu083.adf / Distance / distance (.txt) < prev    next >
AmigaBASIC Source Code  |  1989-03-19  |  9KB  |  362 lines

  1. pi=3.14159
  2. DEF FNrad(x)=x*pi/180 'Convert degrees to radians
  3. mi$="miles"
  4. de$="deegrees"
  5. WINDOW 2,,(0,0)-(629,186),0
  6. PRINT 
  7. PRINT"VE3AGC J.P.MILLAR 1102-756 Kipps Lane, London, Ontario N5Y 4X9 519-434-0992"
  8. PRINT"Enter HOME LOCATION or CITY? in lower case"
  9. PRINT"Enter LATITUDE and LONGITUDE in degrees.minutes"
  10. PRINT"Enter East Longitude and South Latitude as negative numbers"
  11. PRINT"On CITY? requester enter list or quit as required"
  12. PRINT"When listing use Amiga S or CTRL S to stop and any key to start"
  13. PRINT"Right mouse button can also control listing on screen"
  14. PRINT"Defaults are NO SPEECH and SCREEN"
  15. PRINT
  16. COLOR 3,2:INPUT"SPEECH Y/N";s$
  17. INPUT"SCREEN OR PRINTER S/P";p$
  18. INPUT"HOME LOCATION";b$:ab$=UCASE$(b$)
  19. IF LEFT$(s$,1)="y"THEN 10
  20. GOTO 20
  21. 10 :
  22. SAY TRANSLATE$(b$)
  23. 20 :
  24. INPUT"LATITUDE";c:w=c:GOSUB conv
  25. l = FNrad(w)
  26. INPUT"LONGITUDE";e:w=e:GOSUB conv
  27. m = FNrad(w)
  28. IF p$="p"THEN 90
  29. COLOR 1,0:CLS
  30. PRINT TAB(31)"DISTANCE & HEADING "
  31. LINE (233,8)-(390,8),1
  32. PRINT DATE$
  33. PRINT
  34. PRINT"HOME LOCATION: "ab$;
  35. PRINT USING " LAT ####.##";c;
  36. PRINT USING " LONG ####.##";e
  37. PRINT
  38. PRINT "DISTANT LOCATION"TAB(23)"LAT"TAB(34)"LONG"TAB(45)"KM";
  39. PRINT TAB(57)"MILES"TAB(69)"HEADING "
  40. PRINT
  41. WINDOW 3,,(0,50)-(629,186),0
  42. 30 :
  43. WINDOW 4,,(210,100)-(410,125),0
  44. PRINT"LIST or QUIT if required"
  45. LINE (0,8)-(198,8),1
  46. PRINT:COLOR 3,2:INPUT"CITY";d$
  47. WINDOW CLOSE 4
  48. IF d$="list"THEN 80
  49. IF d$="quit"THEN NEW
  50. 40 : 
  51. READ a$,a,b
  52. IF a$=b$THEN 40
  53. IF b=e THEN m=m+0.001
  54. IF LEFT$(a$,8)=LEFT$(d$,8)THEN 50
  55. IF a$="xx"THEN RESTORE:PRINT UCASE$(d$);" NOT LISTED IN DATA":GOTO 30
  56. GOTO 40
  57. 50 : 
  58. w=a:GOSUB conv
  59. d=FNrad(w):w=b:GOSUB conv
  60. f=FNrad(w)
  61. GOSUB calc
  62. a$=UCASE$(a$):z=CINT(x*1.6093):x=CINT(x):y=CINT(y)
  63. IF LEFT$(s$,1)="y"THEN 60
  64. GOTO 70
  65. 60 :
  66. SAY TRANSLATE$(a$):SAY TRANSLATE$(STR$(x)):SAY TRANSLATE$(mi$):SAY TRANSLATE$(STR$(y))
  67. SAY TRANSLATE$(de$)
  68. 70 :
  69. CLS
  70. PRINT a$;
  71. PRINT TAB(21) USING "####.##";a;
  72. PRINT TAB(32) USING "####.##";b;
  73. PRINT TAB(44)z TAB(57)x TAB(71)y
  74. RESTORE:GOTO 30
  75. 80 : 
  76. READ a$,a,b
  77. IF a$=b$THEN 80 'If distant location same as home location
  78. IF b=e THEN m=m+0.001 'To prevent divide by zero error if latitudes are identical
  79. w=a:GOSUB conv
  80. d=FNrad(w):w=b:GOSUB conv
  81. f=FNrad(w)                      
  82. GOSUB conv
  83. IF a$="xx"THEN RESTORE:GOTO 30
  84. GOSUB calc
  85. a$=UCASE$(a$):z=CINT(x*1.6093):x=CINT(x):y=CINT(y)
  86. PRINT a$;
  87. PRINT TAB(21) USING "####.##";a;
  88. PRINT TAB(32) USING "####.##";b;
  89. PRINT TAB(44)z TAB(57)x TAB(71)y
  90. GOTO 80
  91. 90 :
  92. COLOR 1,0:CLS
  93. OPEN "prt:" FOR OUTPUT AS #2 LEN=5
  94. PRINT#2,CHR$(27);"[6q"
  95. PRINT#2,TAB(21);CHR$(27);"[6w";CHR$(27);"[4m";" DISTANCE & HEADING ";CHR$(27);"[24m";CHR$(27);"[5w"
  96. PRINT#2, DATE$
  97. PRINT#2," "
  98. PRINT#2,"HOME LOCATION: "ab$; 
  99. PRINT#2,USING "  LAT ####.##";c;
  100. PRINT#2,USING "  LONG ####.##";e
  101. PRINT#2," "
  102. PRINT#2,CHR$(27);"[4m";"DISTANT LOCATION";TAB(26);"LAT";TAB(37);"LONG";TAB(49);"KM";
  103. PRINT#2,TAB(61);"MILES";TAB(73);"HEADING ";CHR$(27);"[24m"
  104. PRINT#2," "
  105. 100 :
  106. WINDOW 3,,(210,100)-(410,125),0
  107. PRINT"LIST or QUIT if required"
  108. LINE (0,8)-(198,8),1
  109. PRINT:COLOR 3,2:INPUT"CITY";d$
  110. IF d$="list"THEN COLOR 1,0:CLS:PRINT:PRINT"        PRINTING":GOTO 150
  111. WINDOW CLOSE 3
  112. IF d$="quit"THEN CLOSE#2:NEW
  113. 110 : 
  114. READ a$,a,b
  115. IF a$=b$THEN 110
  116. IF b=e THEN m=m+0.001
  117. IF LEFT$(a$,8)=LEFT$(d$,8)THEN 120
  118. IF a$="xx"THEN RESTORE:PRINT#2,UCASE$(d$);" NOT LISTED IN DATA":GOTO 100
  119. GOTO 110
  120. 120 : 
  121. w=a:GOSUB conv
  122. d=FNrad(w):w=b:GOSUB conv
  123. f=FNrad(w)
  124. GOSUB calc
  125. a$=UCASE$(a$):z=CINT(x*1.6093):x=CINT(x):y=CINT(y)
  126. IF LEFT$(s$,1)="y"THEN 130
  127. GOTO 140
  128. 130 :
  129. SAY TRANSLATE$(a$):SAY TRANSLATE$(STR$(x)):SAY TRANSLATE$(mi$):SAY TRANSLATE$(STR$(y))
  130. SAY TRANSLATE$(de$)
  131. 140 :
  132. PRINT#2,a$;
  133. PRINT#2,TAB(21); USING "####.##";a;
  134. PRINT#2,TAB(32); USING "####.##";b;
  135. PRINT#2,TAB(44);z; TAB(57);x; TAB(71);y
  136. RESTORE:GOTO 100
  137. 150 : 
  138. READ a$,a,b
  139. IF a$=b$THEN 150
  140. IF b=e THEN m=m+0.001
  141. w=a:GOSUB conv
  142. d=FNrad(w):w=b:GOSUB conv
  143. f=FNrad(w)                      
  144. GOSUB conv
  145. IF a$="xx"THEN RESTORE:GOTO 100
  146. GOSUB calc
  147. a$=UCASE$(a$):z=CINT(x*1.6093):x=CINT(x):y=CINT(y)
  148. PRINT#2,a$;
  149. PRINT#2,TAB(21); USING "####.##";a;
  150. PRINT#2,TAB(32); USING "####.##";b;
  151. PRINT#2,TAB(44);z; TAB(57);x; TAB(71);y
  152. GOTO 150
  153. calc:'Calculation of subtended angle for great circle arc
  154. g=f-m:h=COS(g)*COS(d)*COS(l)+(SIN(d)*SIN(l))
  155. i=-ATN(h/SQR(-h*h+1))+pi/2:j=(SIN(d)-SIN(l)*COS(i))/(SIN(i)*COS(l))
  156. x=i*5.36162e-315
  157. y=(-ATN(j/SQR(-j*j+1))+pi/2)*180/pi
  158. IF SGN(SIN(g))=1 THEN y=360-y:RETURN
  159. conv:'Conversion of DEG.MIN to decimal degrees including negative numbers
  160. v=(ABS(w)-INT(ABS(w)))*100/60+INT(ABS(w))
  161. IF w<0 THEN v=-v
  162. w=v:RETURN
  163. DATA aberdeen,57.09,2.06 
  164. DATA addis ababa,9.02,-38.42
  165. DATA adelaide,-34.55,-138.32
  166. DATA anchorage,61.32,149.5
  167. DATA ankara,40,-32.54
  168. DATA antigua,17,61.5
  169. DATA antwerp,51.13,-4.25
  170. DATA athens,37.58,-23.46
  171. DATA atlanta,33.5,84.15
  172. DATA auckland,-36.52,-174.46
  173. DATA augusta,33.29,81.59
  174. DATA austin,30.2,97.45
  175. DATA azores,38.44,29
  176. DATA bagdad,33.2,-44.3
  177. DATA bahamas,24.4,74
  178. DATA bali,-8.2,-115
  179. DATA bangkok,13.45,-100.31
  180. DATA barbados,13,59.3
  181. DATA barcelona,41.21,-2.1
  182. DATA basel,47.35,-7.35
  183. DATA beiping,39.5,-116.2
  184. DATA beirut,33.53,-35.31
  185. DATA belfast,54.35,5.36
  186. DATA belgrade,44.5,-20.37
  187. DATA berlin,52.32,-13.24
  188. DATA bermuda,32.2,65.45
  189. DATA bern,46.57,-7.28
  190. DATA bogota,4.34,74
  191. DATA bombay,18.55,-72.5
  192. DATA bonn,50.43,-7.06
  193. DATA boston,42.2,71
  194. DATA brisbane,-27.25,-152.54
  195. DATA bristol,51.26,2.35
  196. DATA brunei,4.5,-115
  197. DATA bucharest,44.27,-26.1
  198. DATA budapest,47.29,-19.05
  199. DATA buenos aires,-34.3,58.2
  200. DATA buffalo,42.55,78.5
  201. DATA cairo,30.01,-31.14
  202. DATA calais,50.57,-1.56
  203. DATA calcutta,-35.15,-149.08
  204. DATA calgary,51,114.1
  205. DATA canary is,29.3,17
  206. DATA canberra,-35.15,-149.08
  207. DATA canton,23.15,-113.15
  208. DATA capetown,-33.56,-18.28
  209. DATA caracas,10.3,66.5
  210. DATA cardiff,51.28,3.11
  211. DATA cayman is,19.4,79.5
  212. DATA cedar rapids,42,91.38
  213. DATA ceylon,7.3,-80.5
  214. DATA chatham,47.02,65.28
  215. DATA chicago,41.56,87.5
  216. DATA christchurch,-43.33,-172.39
  217. DATA cleveland,41.28,81.43
  218. DATA cook is,-22,157
  219. DATA copenhagen,55.41,-12.34
  220. DATA corsica,42,-9
  221. DATA costa rica,10,84
  222. DATA crete,35.2,-25
  223. DATA curacao,12.1,69
  224. DATA cyprus,35,-33
  225. DATA dakar,14.34,17.29
  226. DATA dallas,32.5,96.5
  227. DATA damascus,33.3,-36.18
  228. DATA darwin,-12.2,-130.5
  229. DATA delhi,28.38,-77.17
  230. DATA denver,39.48,105
  231. DATA detroit,42.2,83.5
  232. DATA dublin,53.2,6.18
  233. DATA dubrovnik,42.39,-18.6
  234. DATA duluth,46.48,92.1
  235. DATA dundee,56.29,3
  236. DATA edinburgh,55.57,3.12
  237. DATA edmonton,53.3,113.3
  238. DATA falkland is,-55,45
  239. DATA fiji,-17.2,-179
  240. DATA frankfurt,50.7,-8.4
  241. DATA gander,48.58,54.35
  242. DATA geneva,46.12,-6.09
  243. DATA gibralter,36.07,5.22
  244. DATA glasgow,55.52,4.14
  245. DATA goose bay,53.15,60.2
  246. DATA grenada,12.1,61.4
  247. DATA haiti,19.06,72.3
  248. DATA halifax,44.38,63.35
  249. DATA hamburg,53.32,-9.59
  250. DATA havana,23.08,82.22
  251. DATA hawaii,19.35,155.3
  252. DATA helsinki,60.15,-25.03
  253. DATA hobart,-42.5,-147.21
  254. DATA honduras,14.4,86.3
  255. DATA hong kong,22.11,-14.14
  256. DATA honolulu,21.25,157.55
  257. DATA houston,29.5,95.2
  258. DATA innsbruck,47.16,-11.23
  259. DATA jakarta,-6.09,-106.49
  260. DATA jamaica,18.1,77.3
  261. DATA johannesburg,-26.1,-28.08
  262. DATA keflavik,64.02,22.35
  263. DATA key west,24.4,82
  264. DATA knoxville,35.58,83.57
  265. DATA kuala lumpur,3.09,-101.41
  266. DATA kuwait,29.3,-47.3
  267. DATA la ceiba,15.4,86.5
  268. DATA la paz,-16.2,68.1
  269. DATA lagos,6.25,-3.27
  270. DATA las vegas,36.1,115.05
  271. DATA lima,-12.06,76.55
  272. DATA lisbon,38.42,9.1
  273. DATA london ont,43,81.2
  274. DATA london,51.3,.07
  275. DATA los angeles,34,118.1
  276. DATA madeira is,32.5,17
  277. DATA madras,13.08,-80.19
  278. DATA madrid,40.25,3.45
  279. DATA malta,35.5,-14.3
  280. DATA manchester,53.3,2.15
  281. DATA manila,14.4,-121.03
  282. DATA melbourne,-37.4,-145
  283. DATA mexico city,19.2,99.1
  284. DATA miami,25.52,80.15
  285. DATA milan,45.28,-9.1
  286. DATA minneapolis,44.58,93.2
  287. DATA moncton,46.07,64.51
  288. DATA montreal,45.31,73.34
  289. DATA moscow,55.45,-37.35
  290. DATA munich,48.08,-11.33
  291. DATA nairobi,-1.2,-36.5
  292. DATA nanaimo,49.1,124
  293. DATA naples,40.4,-14.05
  294. DATA nashville,36.12,86.46
  295. DATA nassau,25,77.3
  296. DATA new orleans,30,90.05
  297. DATA new york,40.45,74
  298. DATA nicaragua,11.4,85.3
  299. DATA north bay,46.2,79.3
  300. DATA orlando,28.3,81.25
  301. DATA oshawa,43.53,53.76
  302. DATA oslo,59.53,-10.52
  303. DATA ottawa,45.27,75.42
  304. DATA palm springs,33.51,116.35
  305. DATA panama,9,79.25
  306. DATA papua,-8,-145
  307. DATA paris,48.5,-2.2
  308. DATA penang,5.3,-100.28
  309. DATA perth,-31.57,-115.52
  310. DATA phoenix,33.3,112.1
  311. DATA quebec,46.52,71.13
  312. DATA quito,-.15,78.35
  313. DATA regina,50.3,104.35
  314. DATA reno,39.3,119.5
  315. DATA rio de janeiro,-22.5,43
  316. DATA rome,41.54,-12.3
  317. DATA saint john,45.16,66.03
  318. DATA salzburg,47.48,-13.02
  319. DATA san diego,32.5,117.1
  320. DATA san francisco,37.45,122.3
  321. DATA santiago,47.48,-13.02
  322. DATA sao paulo,-23.32,46.37
  323. DATA sarasota,27.1,82.3
  324. DATA saskatoon,52.1,106.4
  325. DATA sault ste marie,46.32,84.2
  326. DATA seattle,47.36,122.2
  327. DATA shanghai,31.1,-121.25
  328. DATA shannon,52.35,9.3
  329. DATA singapore,1.17,-103.51
  330. DATA split,43.31,-16.26
  331. DATA sri lanka,7.3,-80.5
  332. DATA st johns,47.34,52.41
  333. DATA st louis,38.4,90.12
  334. DATA st petersburg,27,82.4
  335. DATA stockholm,59.17,-18.03
  336. DATA sudbury,46.3,81
  337. DATA sumatera,-.4,-100.2
  338. DATA sydney,-33.53,-151.1
  339. DATA tahiti,-17.45,-149.3
  340. DATA taipei,25.02,-121.3
  341. DATA tampa,28,82.25
  342. DATA tasmania,-49,-146.3
  343. DATA tehran,35.44,-51.3
  344. DATA telaviv,32.04,-34.45
  345. DATA thunder bay,48.25,89.1
  346. DATA timmins,48.28,81.25
  347. DATA tokyo,35.45,-139.45
  348. DATA toronto,43.39,79.2
  349. DATA trinidad,10.3,61.2
  350. DATA tucson,32.13,110.58
  351. DATA vancouver,49.2,123.1
  352. DATA victoria,48.3,111
  353. DATA vienna,48.12,-16.22
  354. DATA windsor,42.18,83
  355. DATA winnipeg,49.5,97.15
  356. DATA zurich,47.22,-8.32
  357. DATA xx,0,0
  358. 'This must be included to prevent out of data error
  359.  
  360.  
  361.  
  362.